<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Zip Encoding Class : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker_th.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">หน้าตารางเนื้อหา</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.in.th/">CodeIgniter.in.th</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a> &nbsp;&#8250;&nbsp;
Zip Encoding Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.in.th/user_guide/" />ค้นหาคู่มือการใช้งาน&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="ค้นหา" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Zip Encoding Class</h1>
<p>Zip Encoding Class เป็นคลาสที่ยอมให้คุณสร้างข้อมูลที่ถูกบีบอัดอยู่ใน Zip  โดยสามารถดาวโหลดไปยังเครื่องของคุณหรือเซฟลงไดเรคทอรี่</p>


<h2>เริ่มต้นใช้คลาส</h2>
<p>เหมือนคลาสอื่นๆของ CodeIgniter คลาส Zip 
นั้นเริ่มต้นได้ในตัวบควมคุม(controller) โดยใช้ฟังก์ชัน <dfn>$this-&gt;load-&gt;library</dfn></p>

<code>$this->load->library('zip');</code>
<p>เมื่อโหลดแล้วคุณสามารถใช้ออบเจ็คบีบอัดได้โดยการใช้ <dfn>$this->zip</dfn></p>


<h2>ตัวอย่างวิธีการใช้งาน</h2>

<p>นี้คือตัวอย่างวิธีบีบอัดไฟล์และเซฟมันลงโฟลเดอร์ในเซิร์ฟเวอร์ และดาวโหลดมันสู่เครื่องของคุณ</p>

<code>
$name = 'mydata1.txt';<br />
$data = 'A Data String!';<br />
<br />
$this->zip->add_data($name, $data);<br />
<br />
// Write the zip file to a folder on your server. Name it "my_backup.zip"<br />
$this->zip->archive('/path/to/directory/my_backup.zip');
<br /><br />
 // Download the file to your desktop.  Name it "my_backup.zip"<br />
$this->zip->download('my_backup.zip');</code>

<h1>ฟังก์ชันอ้างอิง</h1>

<h2>$this->zip->add_data()</h2>

<p>ยอมให้คุณเพิ่มข้อมูลลงใน Zip  โดยพารามิเตอร์ตัวแรกจะต้องมีชื่อที่คุณอยากจะตั้ง และพารามิเตอร์ที่สองจะต้องมีข้อมูลเป็นสตริง</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);
</code>

<p>คุณสามารถที่จะเรียกมันหลายๆครั้งได้เพื่อเพิ่มหลายๆไฟล์ลงที่เก็บไฟล์ได้ (Zip Archive)ตัวอย่างเช่น</p>

<code>
$name = 'mydata1.txt';<br />
$data = 'A Data String!';<br />
$this->zip->add_data($name, $data);<br />
<br />
$name = 'mydata2.txt';<br />
$data = 'Another Data String!';<br />
$this->zip->add_data($name, $data);<br />
</code>

<p>หรือใส่หลายไฟล์เป็นอาเรย์</p>

<code>
$data = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata1.txt' => 'A Data String!',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'mydata2.txt' => 'Another Data String!'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
$this->zip->add_data($data);<br />
<br />
$this->zip->download('my_backup.zip');
</code>

<p>ถ้าคุณอยากจะบีบอัดข้อมูลที่อยู่ในโฟลเดอร์ย่อย ให้รวมเส้นทางไปอยู่ในชื่อไฟล์ด้วย</p>

<code>
$name = '<kbd>personal/</kbd>my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);
</code>

<p>ตัวอย่างด้านบนจะวาง <dfn>my_bio.txt</dfn> ไปอยู่โฟลเดอร์ที่เรียกว่า <kbd>personal</kbd></p>


<h2>$this->zip->add_dir()</h2>

<p>ยินยอมให้คุณเพิ่มไดเรคทอรี่  โดยปกติแล้วฟังก์ชันนี้เป็นฟังก์ชันที่ไม่ค่อยสำคัญเท่าไร เพราะคุณสามารถใส่ข้อมูลไปยังโฟลเดอร์ได้เลยอยู่แล้วด้วย <dfn>$this->zip->add_data()</dfn> แต่ถ้าคุณอยากสร้างโฟลเดอร์ว่างละก็สามารถทำได้ ดังตัวอย่าง</p>

<code>$this->zip->add_dir('myfolder'); // Creates a folder called "myfolder"</code>



<h2>$this->zip->read_file()</h2>

<p>ยอมให้คุณบีบอัดข้อมูลไฟล์ที่มีอยู่แล้วสักแห่งบนเซิร์ฟเวอร์ของคุณ  โดยใส่เส้นทางไฟล์และคลาส zip จะอ่านมันและนำมันใส่เข้าไปในที่เก็บไฟล์</p>

<code>
$path = '/path/to/photo.jpg';<br /><br />
$this->zip->read_file($path);
<br /><br />
 // ดาวโหลดไฟล์ไปยังเครื่องของคุณ และมันมีชื่อว่า "my_backup.zip"<br />
$this->zip->download('my_backup.zip');
</code>

<p>ถ้าคุณต้องการให้ที่เก็บในไฟล์ Zip มีไดเรคทอรี่เหมือนเดิม ให้ใส่ <kbd>TRUE</kbd> (boolean) ไปในพารามิเตอร์ที่สอง ตัวอย่างเช่น</p>


<code>
$path = '/path/to/photo.jpg';<br /><br />
$this->zip->read_file($path, <kbd>TRUE</kbd>);
<br /><br />
 // ดาวโหลดไฟล์ไปยังเครื่องของคุณ และมันมีชื่อว่า "my_backup.zip"<br />
$this->zip->download('my_backup.zip');</code>

<p>ตัวอย่างด้านบน <dfn>photo.jpg</dfn> จะถูกใส่ไว้ภายใต้สองโฟลเดอร์  <kbd>path/to/</kbd></p>



<h2>$this->zip->read_dir()</h2>

<p>ยินยอมให้คุณบีบอัดโฟลเดอร์ (และข้อมูลด้านใน) ที่มีอยู่แล้วสักแห่งบนเซิร์ฟเวอร์ของคุณ  โดยใส่ตำแหน่งของไดเรคทอรี่และคลาส zip จะทำงานอ่านไฟล์ไปเรื่อยๆและสร้างมันเป็นไฟล์  Zip ซึ่งมีไฟล์ทั้งหมดอยู่ ร่วมถึงโฟลเดอร์ย่อยที่อยู่ภายในนั้นด้วย</p>

<code>
$path = '/path/to/your/directory/';<br /><br />
$this->zip->read_dir($path);
<br /><br />
 // ดาวโหลดไฟล์ไปยังเครื่องของคุณ และมันมีชื่อว่า "my_backup.zip"<br />
$this->zip->download('my_backup.zip');</code>




<h2>$this->zip->archive()</h2>

<p>เขียนไฟล์ที่ถูกเข้ารหัส Zip ไปยังไดเรคบนเซิร์ฟเวอร์ของคุณ  โดยใส่เส้นทางบนเซิร์ฟเวอร์ที่ถูกต้องและลงท้ายด้วยชื่อไฟล์  ให้คุณดูให้แน่ใจด้วยว่าไดเรคทอรี่นั้นสามารถถูกเขียนได้ (666 หรือ 777 จะสามารถใช้ได้) ตัวอย่างเช่น</p>

<code>$this->zip->archive('/path/to/folder/myarchive.zip'); // สร้างไฟล์ชื่อ myarchive.zip</code>


<h2>$this->zip->download()</h2>

<p>ไฟล์ Zip จะถูกดาวโหลดจากเซิร์ฟเวอร์ของคุณ  โดยฟังก์ชันจะต้องใส่ชื่อที่คุณต้องการให้ Zip ไฟล์นั้นถูกเรียก
ตัวอย่างเช่น</p>

<code>$this->zip->download('latest_stuff.zip'); // ไฟล์จะมีชื่อว่า "latest_stuff.zip"</code>

<p class="important"><strong>ข้อสังเกตุ:</strong>&nbsp; อย่าแสดงข้อมูลอะไรก็ตามในส่วนควบคุม (Controller) ที่มีการเรียกฟังก์ชันนี้เพราะมันจะส่งหัวข้อมูล ซึ่งจะทำให้สามารถถูกดาวโหลดได้และไฟล์จะถูกดูเป็นไฟล์ไบรารี่</p>


<h2>$this->zip->get_zip()</h2>

<p>คือข้อมูลไฟล์ Zip ที่ถูกบีบอัดแล้ว โดยทั่วไปคุณไม่ต้องการใช้ฟังก์ชันนี้ ยกเว้นว่าคุณต้องการทำอะไรกับข้อมูลซึ่งเป็นอันหนึ่งอันเดียวกัน ตัวอย่างเช่น</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);<br /><br />

$zip_file = $this->zip->get_zip();
</code>


<h2>$this->zip->clear_data()</h2>

<p>คลาส Zip จะแคชข้อมูล zip ของคุณดังนั้นมันไม่จำเป็นที่จะต้องคอมไพล์ใหม่ในการใช้ฟังก์ชันด้านบน
อย่างไรก็ตามถ้าคุณต้องการสร้างหลายไฟล์ซิป โดยข้อมูลแตกต่างกัน คุณสามารถล้างข้อมูลแคชระหว่างที่เรียกได้ ตัวอย่างเช่น</p>

<code>
$name = 'my_bio.txt';<br />
$data = 'I was born in an elevator...';<br />
<br />
$this->zip->add_data($name, $data);<br />
$zip_file = $this->zip->get_zip();<br />
<br />
<kbd>$this->zip->clear_data();</kbd>
<br /><br />

$name = 'photo.jpg';<br />
$this->zip->read_file("/path/to/photo.jpg"); // อ่านข้อมูลของไฟล์<br />
<br /><br />
$this->zip->download('myphotos.zip');
</code>













</div>
<!-- END CONTENT -->


<div id="footer">
<p>
หัวข้ออันก่อน:&nbsp;&nbsp;<a href="xmlrpc.html"> XML-RPC Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">บนสุดของหน้า</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">หน้าหลักคู่มือการใช้งาน</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
หัวข้อถัดไป:&nbsp;&nbsp;<a href="../helpers/array_helper.html">Array Helper</a>
</p>
<p>คู่มือการใช้งาน CodeIgniter นี้ได้ทำการคัดลอกและดัดแปลงจาก <a href="http://codeigniter.com/user_guide/">CodeIgniter User Guide</a></p><p>
<a href="http://codeigniter.com">CodeIgniter</a>
 ·  Copyright © 2006-2009  · 
<a href="http://ellislab.com/">Ellislab, Inc.</a>
</p>
</div>

</body>
</html>